پروژه ساعت دیجیتال با میکرو کنترلر Atmega8
یک باکس


عضو شوید


نام کاربری
رمز عبور

:: فراموشی رمز عبور؟

عضویت سریع

نام کاربری
رمز عبور
تکرار رمز
ایمیل
کد تصویری
براي اطلاع از آپيدت شدن وبلاگ در خبرنامه وبلاگ عضو شويد تا جديدترين مطالب به ايميل شما ارسال شود



تاریخ : شنبه 17 دی 1390
بازدید : 5746
نویسنده : بابک

 

پروژه ساعت دیجیتال با میکرو کنترلر Atmega8

 

 

 

 

این پروژه یکی از ساده ترین ساعت های دیجیتال با میکروکنترلر Atmega8L می باشد .در این پروژه از RTC  داخلی میکرو استفاده شده است و ولتاژ تغذیه آن 3 ولت است .درضمن این میکرو از نوع L   است یعنی این نوع میکرو با ولتاژ پایین کار می کند. ولی اگر میکرو از این نوع نباشد فقط کافیست ولتاژ تغذیه را به 5 ولت افزایش داد . برای نمایش اعداد این ساعت از دو سون سگمنت دوبل آند مشترک مولتی پلکس استفاده شده است که می توان به جای آن از یک سون سگمنت 4 تایی استفاده کرد. برای تنظیم این  ساعت دیجیتال از 2 میکرو سوئیچ استفاده شده است که یکی از آن ها برای تنظیم دقیقه و دیگری برای تنظیم ساعت است .این ساعت به دلیل استفاده از RTC داخلی میکرو بسیار دقیق است به طوری که هر 1000000 ساعت 0.1 ثانیه خطا دارد .جریان مصرفی RTC  داخلی از جریان مصرفی یک دیود  LEDکمتر است . ( اگر از باتری استفاده می کنید نیازی به خازن نیست )

(ولتاژ تغذیه 0 تا 9 ولت و 250 میلی آمپر)

 

 

قطعات :

 

 

1- میکروکنترلر Atmega8

2- سون سگمنت دوبل آند مشترک

3- کریستال ساعت

4- مقاومت 330 اهم

5- خازن 100nF (در صورت استفاده از ترانس به عنوان صافی)

6- منبع تغذیه 3 تا 5 ولت

7- میکرو سوئیچ ( 2 پایه یا 4 پایه )

 

 

نقشه شماتیک مدار با نرم افزار Proteus 7.6

 

 

 

 

 شماتیک ساعت

 کدهای مربوط به ساعت :

'---------------------------------------------------------------

'Simple Digital Clock With 7-Segment

'Programmer: Majid Alinia (Savis_20@Yahoo.COM) MajidAlinia.Blogfa.COM

'Compiler : BASCOM 2.02.8.0

'Creation Date: May 02, 2011 (1390.02.12)

'Copyright: (C) 2011 By WWW.MajiAlinia.Blogfa.COM

'License: This Is A Free Firmware, Ver: 1.00 (Comm. Anode)

'---------------------------------------------------------------

$regfile = "m8def.dat"

$crystal = 1000000                                          'Internal RC

$hwstack = 64

$swstack = 64

$framesize = 64

'RTC

Config Clock = Soft , Gosub = Sectic

Enable Interrupts

Time$ = "12:00:00"

'I/O

Config Portd = Output                                       'A-G (Data)

Config Portc = Output

Config Pinb.0 = Input

Config Pinb.1 = Input

Config Pinb.2 = Output

'Set Pullup Resistor For Setting Key's

Set Portb.0

Set Portb.1

'Aliases

Dataport Alias Portd

Comm Alias Portc

Hour_key Alias Pinb.0

Min_key Alias Pinb.1

Second_led Alias Portb.2

'Variables

Dim Temp As Byte

Dim Temp2 As Byte

Dim Scnd As Byte

Dim Rtc_run As Byte

Dim S As Bit

Dim Dp As Bit

'Declaration

Declare Sub Keyscan

Declare Sub Refresh

Declare Sub Send

Declare Sub Wait4key

Declare Sub Blink_sec

'Wait 4 RTC Start

'Comm. Anode

'Hour Key

'Minute Key

'Blink Sec

 

Comm = &H0F                                                 'Prompt

 

 

 

Do

If Rtc_run > 0 Then Exit Do

Loop

'Main Prog Start Here:

Do

Call Keyscan

Call Refresh

Call Blink_sec

Loop

End

Sub Keyscan

If Hour_key = 0 Then

Incr _hour

If _hour > 23 Then _hour = 0

Call Wait4key

End If

If Min_key = 0 Then

Incr _min

If _min > 59 Then _min = 0

Call Wait4key

End If

End Sub

Sub Refresh

   Comm = &B1000 : Dp = 0 : Temp = _hour \ 10 : Call Send

   Comm = &B0100 : Dp = 1 : Temp = _hour Mod 10 : Call Send

   Comm = &B0010 : Dp = 0 : Temp = _min \ 10 : Call Send

   Comm = &B0001 : Dp = 0 : Temp = _min Mod 10 : Call Send

End Sub

Sub Send

   Dataport = Lookup(temp , Segdata)

If Dp = 1 Then

Portd.7 = S

Else

Portd.7 = 1

End If

Waitms 4

   Dataport = &HFF

End Sub

Sub Wait4key

For Temp2 = 1 To 25

Call Refresh

Next

End Sub

Sub Blink_sec

Incr Scnd

If Scnd > 63 Then Scnd = 0

If Scnd > 0 And Scnd < 31 Then

      S = 1

Else

      S = 0

End If

End Sub

Segdata:

Data &B11000000 , &B11111001 , &B10100100 , &B10110000

Data &B10011001 , &B10010010 , &B10000010 , &B11111000

Data &B10000000 , &B10010000

Sectic:

Incr Rtc_run

Return

 


جهت بهتر شدن سایت ممنون میشم حمایتم کنید
نام و نام خانوادگي
پست الکترونيکي
شماره تلفن
مبلغ به تومان


:: موضوعات مرتبط: برق , ,
می توانید دیدگاه خود را بنویسید


نام
آدرس ایمیل
وب سایت/بلاگ
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

آپلود عکس دلخواه:








پایتخت باکس
سلام .بابک هستم 26 ساله از تهران . خوشحال شدم که به وبلاگ خودتون سر زدید . امیدوارم مطالب این وبلاگ مورد پسند شما دوستان عزیز قرار بگیرد .

کدام مطلب را بیشتر میپسندید؟

تبادل لینک هوشمند
برای تبادل لینک  ابتدا ما را با عنوان دانشجویان برتر و آدرس pn10.4kia.ir لینک نمایید سپس مشخصات لینک خود را در زیر نوشته . در صورت وجود لینک ما در سایت شما لینکتان به طور خودکار در سایت ما قرار میگیرد.






RSS

Powered By
loxblog.Com